package com.zlg.controller;

import javax.validation.Valid;

import org.springframework.stereotype.Controller;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.RequestMapping;

import com.zlg.pojo.Users;

/**
 * showPage()如果没有传值，
 * 会报异常：java.lang.illeagalStateException:Neither BindingResult nor plain tartget Objectfor bean name...
 * 解决异常的方法， 在跳转页面的方法中注入一个对象，即showPage(Users users) 来解决问题。 
 * 要求参数对象的变量名必须是对象的类名的全称首字母小写
 * 
 * 如果想为传递的对象更改名称， 可以使用@ModelAttribute("aa")这表示当前传递的对象的 key 为 aa。
 * 那么我们在页面中获取该对象的 key 也需要修改为 aa
 */
@Controller
public class UsersController {
	@RequestMapping("/addUser")
	public String showPage(Users users){
		return "add";
	}
	
	/**
	 * 完成用户添加
	 * @Valid 开启对 Users 对象的数据校验
	 * BindingResult:封装了校验的结果
	 */
	@RequestMapping("/save")
	public String savaUser(@Valid Users users,BindingResult result){
		if(result.hasErrors()){
			return "add";
		}
		System.out.println(users);
		return "ok";
	}
}
